#pragma once

#include "ConvertIterador.h"
#include "Iterable.h"

template <class T>
class ConvertIterableIterador : public ConvertIterador<Puntero<Iterable<T>>, Puntero<Iterador<T>>>
{
public:
	ConvertIterableIterador(Puntero<Iterador<Puntero<Iterable<T>>>> toConvert);
	virtual ~ConvertIterableIterador();

protected:
	const Puntero<Iterador<T>>& Convertir(const Puntero<Iterable<T>>& iterable) const;

private:
	mutable Puntero<Iterador<T>> m_Actual;
};

#include "ConvertIterableIterador.cpp"